﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NutriLeaf.Web.Core.Weight
{
    public interface IWeight
    {
        Model.WeightCategory GetWeightCategory(int userId,ref NutriLeaf.Web.Model.NutriLeafDBEntities context); //get this from UserProfile

        float GetCurrentWeight(int userId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context); //get this from UserProfile

        void UpdateCurrentWeight(int userId, float currentWeight, ref NutriLeaf.Web.Model.NutriLeafDBEntities context); //calculate BMI, Weight Category and Update it in user profile. and even add an entry to Weight Diary Table

        void UpdateWeightCategory(int userId, WeightCategory category, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);


        void UpdateWeightCategory(int userId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context); //calculates weight category automaticallu . See BMI Class for more info

        void InsertWeightIntoDiary(Model.WeightDiary weight, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertWeightIntoDiary(int userId, float weight, DateTime datetime, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        void InsertWeightIntoDiary(int userId, float weight, DateTime datetime, WeightCategory category, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);

        Model.WeightDiary GetWeightDiary(int weightDiaryId, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);


        List<Model.WeightDiary> GetWeightDiaries(int userid, DateTime datetimeStart, DateTime datetimeEnd, ref NutriLeaf.Web.Model.NutriLeafDBEntities context);


        Model.WeightDiary GetWeightDiary(int userId, DateTime dateTime,ref NutriLeaf.Web.Model.NutriLeafDBEntities context);


        Model.WeightDiary GetRecentWeightDiary(int userid,ref NutriLeaf.Web.Model.NutriLeafDBEntities context);


        void UpdateWeightDiary(Model.WeightDiary weight,ref NutriLeaf.Web.Model.NutriLeafDBEntities context);


        void RemoveWeightDiary(Model.WeightDiary weight,ref NutriLeaf.Web.Model.NutriLeafDBEntities context);


        void RemoveWeightDiary(int weightDiaryId,ref NutriLeaf.Web.Model.NutriLeafDBEntities context);



        
    }
}
